home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / FindAndDecrunch.AMOS / FindAndDecrunch.amosSourceCode
Encoding:
AMOS Source Code  |  1997-05-08  |  1.8 KB  |  70 lines

  1. Screen Open 0,640,256,2,$8000
  2. Curs Off 
  3. 'Wload "dh1:games/originale/lemmings2/hdlemmings2",9 
  4.  Extension_8_0456 "Ram:joesmain",9
  5. ST=Start(9)
  6. ID= Extension_8_0998("IMP!")
  7. CRM2= Extension_8_0998("CrM2")
  8. CATN= Extension_8_0998("ATN!")
  9. RNC= Extension_8_0998("RNC"+Chr$(1))
  10. PP20= Extension_8_0998("PP20")
  11. For A=0 To Length(9)-1 Step 2
  12.   If Leek(ST+A)=PP20
  13.     Print "Probably found a PP20 file. Trying to get length from table."
  14.     For AA=$2C00 To $41FF Step 32
  15.       If Leek(ST+AA)=A
  16.         Print "Found!" : LL=Leek(ST+AA+4) : Exit 
  17.       End If 
  18.     Next 
  19.     If AA=$4200
  20.       Print "nothing :-("
  21.       AA=Hunt(ST+A+4 To ST+Length(9),"PP20")
  22.       If AA
  23.         Print "Saving by good luck..."
  24.         Bsave "ram:file"+ Extension_8_0EB8(N,2),ST+A To AA
  25.         Inc N
  26.       End If 
  27.     Else 
  28.       Bsave "ram:file"+ Extension_8_0EB8(N,2),ST+A To ST+A+LL
  29.       Inc N
  30.     End If 
  31.   End If 
  32.   If Leek(ST+A)=CATN
  33.     Bsave "ram:file"+ Extension_8_0EB8(N,2),ST+A To ST+A+Leek(ST+A+8)+50
  34.     Inc N
  35.   End If 
  36.   If Leek(ST+A)=CRM2
  37.     LE=Leek(ST+A+10)
  38.     If LE>512 and LE<500000
  39.       Bsave "ram:file"+ Extension_8_0EB8(N,2),ST+A To ST+A+LE+32
  40.       Inc N
  41.     End If 
  42.   End If 
  43.   If Leek(ST+A)=RNC
  44.     LE=Leek(ST+A+8)
  45.     If LE>512 and LE<500000
  46.       Bsave "ram:file"+ Extension_8_0EB8(N,2),ST+A To ST+A+LE+80
  47.       Inc N
  48.     End If 
  49.   End If 
  50.   If Leek(ST+A)=ID
  51.     OL=Leek(ST+A+4)
  52.     PL=Leek(ST+A+8)
  53.     If((OL or PL) and $FF000000)=0
  54.       Print N;
  55.       Print "Offset:";Hex$(A,6);At(20,);"Packed:";Hex$(PL,8);At(40,);"Unpacked:";Hex$(OL,8)
  56.       Print "Save? ";
  57.       Repeat 
  58.         I$=Inkey$
  59.         Multi Wait 
  60.       Until I$="y" or I$="n"
  61.       Print I$
  62.       If I$="y"
  63.          Extension_8_0E8A ST+A To 10
  64. '        Bank Copy ST+A,ST+A+PL+80 To 10 
  65.          Extension_8_0472 "ram:File"+ Extension_8_0EB8(N,2),10
  66.         Inc N
  67.       End If 
  68.     End If 
  69.   End If 
  70. Next